/*
 * System.c
 *
 *  Created on: 21.05.2011
 *      Author: Tavin
 */

#include <stdint.h>

#include "boolean.h"
#include "flashc.h"

#include "system.h"
#include "UI.h"


SystemData_t SystemData;

#if defined (__GNUC__)
__attribute__((__section__(".flash_configram")))
#endif

static  SystemData_t SystemDataFlash;


#if defined (__ICCAVR32__)
@ "FLASH_CONFIGRAM"
#endif

/****************************************************************************************/
/*																						*/
/*	Function : System_init									Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.5.21			Status : Working   			*/
/*																						*/
/****************************************************************************************/

void System_init()
{
	System_setMode(MODE_STARTUP);
	SystemData.components.accOn=SystemDataFlash.components.accOn;
	SystemData.components.buzzerOn=SystemDataFlash.components.buzzerOn;
	SystemData.components.wirelesOn=SystemDataFlash.components.wirelesOn;
	SystemData.components.usbOn=SystemDataFlash.components.usbOn;
}


/****************************************************************************************/
/*																						*/
/*	Function : System_saveData								Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.5.21			Status : Working   			*/
/*																						*/
/****************************************************************************************/

void System_saveData()
{
	flashc_memcpy(&SystemDataFlash.components,&SystemData.components,sizeof(SystemData),true);
}




/****************************************************************************************/
/*																						*/
/*	Function : System_intemediateCheckModes					Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.5.21			Status : Working   			*/
/*																						*/
/****************************************************************************************/

void System_intemediateCheckModes()
{
	if (UI_checkRecoveryModeRequest()==TRUE)
		{
		System_setMode(MODE_RECOVERY);
		return;
		}
	if (UI_checkMainMenueRequest()==TRUE)
		{
		System_setMode(MODE_SYSTEM);
		return;
		}
}


/****************************************************************************************/
/*																						*/
/*	Function : System_intemediateCheckModes					Author : OG					*/
/*																						*/
/*	Description : 								   										*/
/*																						*/
/*	Version : 1.0					Date :2011.5.21			Status : Working   			*/
/*																						*/
/****************************************************************************************/

void System_checkModes()
{
/*	if (UI_CheckRecoveryModeRequest()==TRUE)
		{
		GamePadData.mode=MODE_RECOVERY;
		}
	if (UI_CheckMainMenueRequest()==TRUE)
		{

		}*/
}
